/**
 * 
 */
package br.flf.webchat.mbean;

import java.io.Serializable;

import javax.faces.application.FacesMessage;
import javax.faces.application.FacesMessage.Severity;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;

/**
 * @author Nathan
 * 
 */
public class BaseBean implements Serializable {

	// -------------------------------------------Constantes
	/**
	 * Generated SerialVersion UID.
	 */
	private static final long serialVersionUID = 7606855597012249827L;

	// --------------------------------------------Atributos
	// -------------------------------------Metodos Publicos
	protected void adicionarMensgemDeSucesso(String msg) {
		adicionarMensagem(msg, FacesMessage.SEVERITY_INFO);
	}

	protected void adicionarMensgemDeAlerta(String msg) {
		adicionarMensagem(msg, FacesMessage.SEVERITY_WARN);
	}

	protected void adicionarMensgemDeErro(String msg) {
		adicionarMensagem(msg, FacesMessage.SEVERITY_ERROR);
	}

	protected ExternalContext getExternalContext(){
		
		return FacesContext.getCurrentInstance().getExternalContext();
	}
	// -------------------------------------Metodos Privados

	/**
	 * Adiciona uma mensagem ao cliente com o alerta especificado como parametro.
	 * @param msg
	 */
	private void adicionarMensagem(String msg, Severity severidade) {
		FacesContext.getCurrentInstance().addMessage(
				FacesContext.getCurrentInstance().getExternalContext()
						.getRemoteUser(),
				new FacesMessage(severidade, msg, msg));
	}

	// ----------------------------------------Gets and Sets
	public FacesContext getFacesContext() {
		return FacesContext.getCurrentInstance();
	}

}
